package org.scub.foundation.fournisseur.egicom.core.service.implementations;

import java.util.List;

import org.scub.foundation.fournisseur.egicom.core.dao.interfaces.CategorieDao;
import org.scub.foundation.fournisseur.egicom.core.dao.interfaces.ProduitDao;
import org.scub.foundation.fournisseur.egicom.core.dto.ProduitDto;
import org.scub.foundation.fournisseur.egicom.core.model.Produit;
import org.scub.foundation.fournisseur.egicom.core.service.interfaces.ProduitService;
import org.scub.foundation.framework.base.mapping.util.MapperDozerBean;

public class ProduitServiceImpl implements ProduitService {
    
    private ProduitDao produitDao;
    private MapperDozerBean mapperDozerBean;
    private CategorieDao categorieDao;
    
    public void setProduitDao(ProduitDao produitDao) {
        this.produitDao = produitDao;
    }


    public void setCategorieDao(CategorieDao categorieDao) {
        this.categorieDao = categorieDao;
    }


    public void setMapperDozerBean(MapperDozerBean mapperDozerBean) {
        this.mapperDozerBean = mapperDozerBean;
    }


    @Override
    public List<ProduitDto> getAllProducts() {
        final List<ProduitDto> produitDto = mapperDozerBean.mapList(produitDao.getAllProduits(), ProduitDto.class);
        return produitDto;
    }


    @Override
    public String sayhello() {
        return "hello";
    }


    @Override
    public ProduitDto getProduitById(Long id) {

        return mapperDozerBean.map(produitDao.getProduitById(id), ProduitDto.class);
    }


    @Override
    public List<ProduitDto> getProductsByCategorie(Long idCategorie) {

        return mapperDozerBean.mapList(categorieDao.getCategorieById(idCategorie).getProduits(), ProduitDto.class);

    }


    @Override
    public void createProduct(ProduitDto produitDto) {
            Produit produit = mapperDozerBean.map(produitDto, Produit.class);
            produitDao.createProduit(produit);
    }


}
